-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(charts)!: Update Helm release grafana to 7.3.11 - autoclosed #2377
Conversation
Path: @@ -9,17 +9,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +39,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +140,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +185,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +206,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +252,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 8db2dfdc9e59140d14c1d113ef0b84bc1d0f2be410865a7ebe41ee258a8cea74
+ checksum/dashboards-json-config: da5f21f24ffbbb2af2c1e65cb84c1d754f08a2f2a353ba1bec01f48c571cefb6
+ checksum/sc-dashboard-provider-config: 7ae19f98d172d9bad4daab851d0ab8466c41aed4508662bb352608e7b08c91a7
+ checksum/secret: 05512b901c6dd2f4d3f7d041fbd85db9293a5867101f2db4a4629f09db0c06e8
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +288,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +301,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +353,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.1.5"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +396,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -549,7 +535,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +549,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +604,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
4962b26
to
d669d8b
Compare
Path: @@ -9,17 +9,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +39,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +140,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +185,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +206,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +252,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 6043e2810bef7ea529749c224ccf6e2d0bf9803993ccf6be509df51b503a582e
+ checksum/dashboards-json-config: 0a8a6c2222384bb982964e015d38419f7af449ad0ac27240398083ea8ab30f02
+ checksum/sc-dashboard-provider-config: dc6f63e34f8b12c2b1c0dde99e9d01e069136fe833134a24f583e581e220583e
+ checksum/secret: 255543ec8f86e160e713e804918ebd5b9eda30394d00ed1b9e120c01e95937cb
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +288,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +301,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +353,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.1.5"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +396,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -549,7 +535,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +549,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +604,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
d669d8b
to
3ee8bb8
Compare
Path: @@ -9,17 +9,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +39,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +140,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +185,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +206,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +252,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 0ce5e76604270343c29fa8e02585f812b475b70ce37bbbbd940486a9da302d2c
+ checksum/dashboards-json-config: 22df7b9bab74df04e4549ebe09d6da806f1f1e2c6b2d3275072838228c0d7e31
+ checksum/sc-dashboard-provider-config: fcece55643fc41944ac58dc73e4ed6199e68a8a2e855b1d45da47b24e45bdcbb
+ checksum/secret: b611d5d4e11c37ebf361e8be28a1b6280a8ddc6eb27b763a3e2cb96ff0e25ef8
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +288,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +301,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +353,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.1.5"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +396,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -549,7 +535,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +549,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +604,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
3ee8bb8
to
1545197
Compare
Path: @@ -9,17 +9,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +39,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +140,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +185,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +206,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +252,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: ca5a3684b233ca90e5ba504d9bd6326526e9f4ca53076a0ba529df52bed7850a
+ checksum/dashboards-json-config: fd91d32f8e109346b906b3d46e40af6fb2923d28544260a687537d842200a2d9
+ checksum/sc-dashboard-provider-config: bcf44610fa5b9da65016ce9ccb8fad91bc9428dde587b89a7c8bd5633327b552
+ checksum/secret: fc800cb375d166ba906dc54b2f5b48e10dfb0b11fb9c9883e2c84ab0590c0991
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +288,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +301,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +353,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.1.5"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +396,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -549,7 +535,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +549,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +604,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
1545197
to
cdbe877
Compare
Path: @@ -9,17 +9,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +39,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +140,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +185,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +206,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +252,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 652c71e4c87d76d440621209a36b0d9c0c07fbb05ec9f5fb39481b2fd12ae94e
+ checksum/dashboards-json-config: c39c21c69759e208e2e873f1a9ed4689c41be20e6edbd0f4b9d784565a4f48f0
+ checksum/sc-dashboard-provider-config: cccb75bd1394c143a9ab215a3d5425358640029dd5c668b565be8a0cde2b9609
+ checksum/secret: a3bfc7326a7a02c48f75e908684caf822ce0923db83d2649a93fef1725e44dcb
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +288,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +301,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +353,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.1.5"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +396,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -549,7 +535,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +549,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +604,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
cdbe877
to
5b92d50
Compare
Path: @@ -9,17 +9,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +39,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +140,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +185,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +206,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +252,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: d9da4eeefdc23a792d068a9c7fef5bef1565df630c006949104f742056e55f61
+ checksum/dashboards-json-config: 58daef74c29540a84bdc292fefd655cebc4acb83a9a17cc90160dc5745ce8f8b
+ checksum/sc-dashboard-provider-config: a008cbc1e11fb593ea5adc5bbdc70984ae3f0ffc05c2fcc498335c213662b7ba
+ checksum/secret: b27b0b93a961617425fa7ae610ee723ea1eb115f4fcfa481f7bf90219f564461
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +288,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +301,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +353,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.1.5"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +396,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -549,7 +535,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +549,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +604,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
5b92d50
to
2d890cf
Compare
Path: @@ -9,17 +9,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +39,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +140,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +185,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +206,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +252,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: cc0ae23fe297e27d011113e266e482c6134f57939a526633586cc74555685a58
+ checksum/dashboards-json-config: efb6c916e0fdef8bc24007aff577a6c74bcca2259fc21c0e94ea839161b7c01e
+ checksum/sc-dashboard-provider-config: 18710313ccdb7ed5d07d774ee8d7213f0eedbe486069da766a6c48a5ae1fc2cd
+ checksum/secret: e41eca89b1d83a275f02b12ca7ead2268960f75d131a2c5c3fe044551532e462
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +288,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +301,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +353,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.1.5"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +396,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -549,7 +535,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +549,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +604,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
2d890cf
to
896af49
Compare
Path: @@ -9,17 +9,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +39,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +140,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +185,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +206,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +252,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 1b39576f706091a9cb8eef957d854844c49f1c47ff2ac4c5fa1bf3a0731a05d6
+ checksum/dashboards-json-config: 88f2ba3bd0ad3165c70ffef55dba14fc23b8121d3f0bc36f6719815de14fc999
+ checksum/sc-dashboard-provider-config: b9d137b9971abca89e568d91d6af9e037ded5a192d196552959a184d45b0e6a8
+ checksum/secret: 4dfcca38f834e7d5d14580efbf9cb6edba37ea93b35767746d14b6b9732f8139
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +288,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +301,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +353,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.2.2"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +396,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -549,7 +535,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +549,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +604,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
896af49
to
f309fbf
Compare
Path: @@ -9,17 +9,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +39,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +140,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +185,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +206,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +252,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 2c844d3e0ad755bba7b37c927462f7c3598499570702a67bd9303751eadb580f
+ checksum/dashboards-json-config: bdbe13b4edd058769b59cdd993bc286c68e68e8499b1162f17c57ae05678e5d4
+ checksum/sc-dashboard-provider-config: a1ddd91939a186f0b995c45e333c1f3a44d2744e5f4d2b71ea022a3c715bdf1b
+ checksum/secret: 5a14afd2c0d7c73a5267a674b3151f144d1811c30f39d069bf0bab1f1bf7d4df
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +288,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +301,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +353,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.2.2"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +396,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -549,7 +535,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +549,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +604,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
f309fbf
to
2a85157
Compare
Path: @@ -9,17 +9,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +39,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +140,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +185,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +206,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +252,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 330cae61f960c400b62f029b22fcdc6fcd6cb105ac1153553dd63eaad3fb86b3
+ checksum/dashboards-json-config: a2a5161191ede69a1880f0131c939c54e6f820b1595b5f60bce0fd2636e6a72c
+ checksum/sc-dashboard-provider-config: 593c0a8778b83f11fe80ccb21dfb20bc46705e2be3178df1dc4c89d164c8cd9c
+ checksum/secret: 385abea46313993d8c36a07faff7897b4f5f75e1b5adec56f895c00cd2dc2c7e
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +288,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +301,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +353,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.2.2"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +396,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -549,7 +535,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +549,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +604,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
Path: @@ -9,17 +9,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +39,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +140,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +185,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +206,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +252,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 330cae61f960c400b62f029b22fcdc6fcd6cb105ac1153553dd63eaad3fb86b3
+ checksum/dashboards-json-config: 8b7697c0a9860ac680c629cd7f414260ec6f888396114e25da97b99b02cbc331
+ checksum/sc-dashboard-provider-config: 593c0a8778b83f11fe80ccb21dfb20bc46705e2be3178df1dc4c89d164c8cd9c
+ checksum/secret: 385abea46313993d8c36a07faff7897b4f5f75e1b5adec56f895c00cd2dc2c7e
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +288,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +301,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +353,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.3.3"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +396,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -525,7 +511,7 @@
- grafana.${SECRET_DOMAIN}
secretName: ${SECRET_DOMAIN//./-}-tls
rules:
- - host: grafana.${SECRET_DOMAIN}
+ - host: "grafana.${SECRET_DOMAIN}"
http:
paths:
- path: /
@@ -549,7 +535,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +549,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +604,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
9ad1b99
to
72fe519
Compare
Path: @@ -1,6 +1,7 @@
# Source: grafana/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
+automountServiceAccountToken: true
metadata:
labels:
app.kubernetes.io/name: grafana
@@ -9,17 +10,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +40,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +141,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +186,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +207,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +253,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 330cae61f960c400b62f029b22fcdc6fcd6cb105ac1153553dd63eaad3fb86b3
+ checksum/dashboards-json-config: 53349bc67e5f15247329d1f66c0614f70e17d833df1a1a6fa07fa47d7f652587
+ checksum/sc-dashboard-provider-config: 593c0a8778b83f11fe80ccb21dfb20bc46705e2be3178df1dc4c89d164c8cd9c
+ checksum/secret: 385abea46313993d8c36a07faff7897b4f5f75e1b5adec56f895c00cd2dc2c7e
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +289,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +302,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.25.2"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +354,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.3.3"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +397,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -525,7 +512,7 @@
- grafana.${SECRET_DOMAIN}
secretName: ${SECRET_DOMAIN//./-}-tls
rules:
- - host: grafana.${SECRET_DOMAIN}
+ - host: "grafana.${SECRET_DOMAIN}"
http:
paths:
- path: /
@@ -549,7 +536,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +550,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +605,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
72fe519
to
5f83879
Compare
Path: @@ -1,6 +1,7 @@
# Source: grafana/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
+automountServiceAccountToken: true
metadata:
labels:
app.kubernetes.io/name: grafana
@@ -9,17 +10,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +40,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +141,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +186,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +207,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +253,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 330cae61f960c400b62f029b22fcdc6fcd6cb105ac1153553dd63eaad3fb86b3
+ checksum/dashboards-json-config: 61d101be4fcdb6d296b20c7e9b8cd7f05e6e4f234728a691dabebac103011f59
+ checksum/sc-dashboard-provider-config: 593c0a8778b83f11fe80ccb21dfb20bc46705e2be3178df1dc4c89d164c8cd9c
+ checksum/secret: 385abea46313993d8c36a07faff7897b4f5f75e1b5adec56f895c00cd2dc2c7e
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +289,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.0"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +302,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.0"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +354,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.3.3"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +397,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -525,7 +512,7 @@
- grafana.${SECRET_DOMAIN}
secretName: ${SECRET_DOMAIN//./-}-tls
rules:
- - host: grafana.${SECRET_DOMAIN}
+ - host: "grafana.${SECRET_DOMAIN}"
http:
paths:
- path: /
@@ -549,7 +536,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +550,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +605,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
5f83879
to
b8d3233
Compare
Path: @@ -1,6 +1,7 @@
# Source: grafana/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
+automountServiceAccountToken: true
metadata:
labels:
app.kubernetes.io/name: grafana
@@ -9,17 +10,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +40,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +141,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +186,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +207,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +253,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 330cae61f960c400b62f029b22fcdc6fcd6cb105ac1153553dd63eaad3fb86b3
+ checksum/dashboards-json-config: a2f07293c255b0fc56fac49ff5b4bd38c1b71c4533e71f44f75039ff84772a5c
+ checksum/sc-dashboard-provider-config: 593c0a8778b83f11fe80ccb21dfb20bc46705e2be3178df1dc4c89d164c8cd9c
+ checksum/secret: 385abea46313993d8c36a07faff7897b4f5f75e1b5adec56f895c00cd2dc2c7e
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +289,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +302,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +354,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.3.3"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +397,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -525,7 +512,7 @@
- grafana.${SECRET_DOMAIN}
secretName: ${SECRET_DOMAIN//./-}-tls
rules:
- - host: grafana.${SECRET_DOMAIN}
+ - host: "grafana.${SECRET_DOMAIN}"
http:
paths:
- path: /
@@ -549,7 +536,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +550,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +605,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
b8d3233
to
fc8f6ce
Compare
Path: @@ -1,6 +1,7 @@
# Source: grafana/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
+automountServiceAccountToken: true
metadata:
labels:
app.kubernetes.io/name: grafana
@@ -9,17 +10,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +40,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +141,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +186,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +207,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +253,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 330cae61f960c400b62f029b22fcdc6fcd6cb105ac1153553dd63eaad3fb86b3
+ checksum/dashboards-json-config: a3dfd6ca0d8194cf3a81556236d37a0e0137889c8b5d92adbce4f5610f23ba8a
+ checksum/sc-dashboard-provider-config: 593c0a8778b83f11fe80ccb21dfb20bc46705e2be3178df1dc4c89d164c8cd9c
+ checksum/secret: 385abea46313993d8c36a07faff7897b4f5f75e1b5adec56f895c00cd2dc2c7e
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +289,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +302,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +354,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.4.0"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +397,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -525,7 +512,7 @@
- grafana.${SECRET_DOMAIN}
secretName: ${SECRET_DOMAIN//./-}-tls
rules:
- - host: grafana.${SECRET_DOMAIN}
+ - host: "grafana.${SECRET_DOMAIN}"
http:
paths:
- path: /
@@ -549,7 +536,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +550,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +605,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
fc8f6ce
to
309f9c4
Compare
Path: @@ -1,6 +1,7 @@
# Source: grafana/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
+automountServiceAccountToken: true
metadata:
labels:
app.kubernetes.io/name: grafana
@@ -9,17 +10,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +40,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +141,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +186,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +207,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +253,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 330cae61f960c400b62f029b22fcdc6fcd6cb105ac1153553dd63eaad3fb86b3
+ checksum/dashboards-json-config: c3092dafbaf916966091a2476b10dc8c759001b2674671ae56c40c455baa6de6
+ checksum/sc-dashboard-provider-config: 593c0a8778b83f11fe80ccb21dfb20bc46705e2be3178df1dc4c89d164c8cd9c
+ checksum/secret: 385abea46313993d8c36a07faff7897b4f5f75e1b5adec56f895c00cd2dc2c7e
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +289,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +302,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +354,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.4.1"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +397,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -525,7 +512,7 @@
- grafana.${SECRET_DOMAIN}
secretName: ${SECRET_DOMAIN//./-}-tls
rules:
- - host: grafana.${SECRET_DOMAIN}
+ - host: "grafana.${SECRET_DOMAIN}"
http:
paths:
- path: /
@@ -549,7 +536,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +550,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +605,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
309f9c4
to
d737f9b
Compare
Path: @@ -1,6 +1,7 @@
# Source: grafana/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
+automountServiceAccountToken: true
metadata:
labels:
app.kubernetes.io/name: grafana
@@ -9,17 +10,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +40,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +141,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +186,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +207,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +253,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 330cae61f960c400b62f029b22fcdc6fcd6cb105ac1153553dd63eaad3fb86b3
+ checksum/dashboards-json-config: c1fba2432db9d802fd112addbe50a4c94d66e7b146d39312d548a2fed63aa7ed
+ checksum/sc-dashboard-provider-config: 593c0a8778b83f11fe80ccb21dfb20bc46705e2be3178df1dc4c89d164c8cd9c
+ checksum/secret: 385abea46313993d8c36a07faff7897b4f5f75e1b5adec56f895c00cd2dc2c7e
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +289,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +302,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +354,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.4.1"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +397,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -525,7 +512,7 @@
- grafana.${SECRET_DOMAIN}
secretName: ${SECRET_DOMAIN//./-}-tls
rules:
- - host: grafana.${SECRET_DOMAIN}
+ - host: "grafana.${SECRET_DOMAIN}"
http:
paths:
- path: /
@@ -549,7 +536,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +550,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +605,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
d737f9b
to
1cd9267
Compare
Path: @@ -1,6 +1,7 @@
# Source: grafana/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
+automountServiceAccountToken: true
metadata:
labels:
app.kubernetes.io/name: grafana
@@ -9,17 +10,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +40,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +141,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +186,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +207,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +253,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 330cae61f960c400b62f029b22fcdc6fcd6cb105ac1153553dd63eaad3fb86b3
+ checksum/dashboards-json-config: 59fd577f6c1c72790a0501d192636f409c7a3f6dd39f3f2c0c8526061d65b698
+ checksum/sc-dashboard-provider-config: 593c0a8778b83f11fe80ccb21dfb20bc46705e2be3178df1dc4c89d164c8cd9c
+ checksum/secret: 385abea46313993d8c36a07faff7897b4f5f75e1b5adec56f895c00cd2dc2c7e
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +289,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +302,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +354,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.4.1"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +397,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -525,7 +512,7 @@
- grafana.${SECRET_DOMAIN}
secretName: ${SECRET_DOMAIN//./-}-tls
rules:
- - host: grafana.${SECRET_DOMAIN}
+ - host: "grafana.${SECRET_DOMAIN}"
http:
paths:
- path: /
@@ -549,7 +536,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +550,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +605,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
Signed-off-by: Danny Froberg <[email protected]>
1cd9267
to
4a8d59f
Compare
Path: @@ -1,6 +1,7 @@
# Source: grafana/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
+automountServiceAccountToken: true
metadata:
labels:
app.kubernetes.io/name: grafana
@@ -9,17 +10,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-serviceaccount.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/secret.yaml
apiVersion: v1
kind: Secret
@@ -50,16 +40,16 @@
provider.yaml: |-
apiVersion: 1
providers:
- - name: 'sidecarProvider'
- orgId: 1
- folder: ''
- type: file
- disableDeletion: false
- allowUiUpdates: false
- updateIntervalSeconds: 30
- options:
- foldersFromFilesStructure: false
- path: /tmp/dashboards
+ - name: 'sidecarProvider'
+ orgId: 1
+ folder: ''
+ type: file
+ disableDeletion: false
+ allowUiUpdates: false
+ updateIntervalSeconds: 30
+ options:
+ foldersFromFilesStructure: false
+ path: /tmp/dashboards
---
# Source: grafana/templates/configmap.yaml
apiVersion: v1
@@ -151,27 +141,9 @@
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
dashboard-provider: default
+ grafana_dashboard: ""
data: {}
---
-# Source: grafana/templates/tests/test-configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-data:
- run.sh: |-
- @test "Test Health" {
- url="http://grafana/api/health"
-
- code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
- [ "$code" == "200" ]
- }
----
# Source: grafana/templates/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
@@ -214,27 +186,7 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['extensions']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana]
----
-# Source: grafana/templates/tests/test-role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-rules:
- - apiGroups: ['policy']
- resources: ['podsecuritypolicies']
- verbs: ['use']
- resourceNames: [grafana-test]
+rules: []
---
# Source: grafana/templates/rolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
@@ -255,25 +207,6 @@
name: grafana
namespace: default
---
-# Source: grafana/templates/tests/test-rolebinding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
- name: grafana-test
- namespace: default
- labels:
- app.kubernetes.io/name: grafana
- app.kubernetes.io/instance: grafana
- app.kubernetes.io/managed-by: Helm
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: Role
- name: grafana-test
-subjects:
- - kind: ServiceAccount
- name: grafana-test
- namespace: default
----
# Source: grafana/templates/service.yaml
apiVersion: v1
kind: Service
@@ -320,24 +253,33 @@
app.kubernetes.io/name: grafana
app.kubernetes.io/instance: grafana
annotations:
- checksum/config: 2f76c91babf4c50bb6e4ad5890ba25835bd2d037b05452e13fff1317661f93ec
- checksum/dashboards-json-config: a652350250573ac5d0a297866f63cd1542e38764f44849812602331ec4a44ba0
- checksum/sc-dashboard-provider-config: 7dffc9de897da308d1d87ba3237f265bd382d64730d454a5a26b24ea9e1f6009
- checksum/secret: 9e9fb76c95b670be03455fe71cd145a6c31de42f78eed0cd976243298d90199c
+ checksum/config: 330cae61f960c400b62f029b22fcdc6fcd6cb105ac1153553dd63eaad3fb86b3
+ checksum/dashboards-json-config: 4fce80be5fe014b9a9bc5b18348eb8d39df153c7df93a8f5ef76d4a7d4805212
+ checksum/sc-dashboard-provider-config: 593c0a8778b83f11fe80ccb21dfb20bc46705e2be3178df1dc4c89d164c8cd9c
+ checksum/secret: 385abea46313993d8c36a07faff7897b4f5f75e1b5adec56f895c00cd2dc2c7e
+ kubectl.kubernetes.io/default-container: grafana
spec:
serviceAccountName: grafana
automountServiceAccountToken: true
securityContext:
fsGroup: 472
runAsGroup: 472
+ runAsNonRoot: true
runAsUser: 472
initContainers:
- name: download-dashboards
- image: "curlimages/curl:7.85.0"
+ image: "docker.io/curlimages/curl:7.85.0"
imagePullPolicy: IfNotPresent
command: ["/bin/sh"]
args: ["-c", "mkdir -p /var/lib/grafana/dashboards/default && /bin/sh -x /etc/grafana/download_dashboards.sh"]
env:
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/download_dashboards.sh"
@@ -347,7 +289,7 @@
enableServiceLinks: true
containers:
- name: grafana-sc-dashboard
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -360,11 +302,32 @@
value: "both"
- name: NAMESPACE
value: "ALL"
+ - name: REQ_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-user
+ - name: REQ_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: grafana
+ key: admin-password
+ - name: REQ_URL
+ value: http://localhost:3000/api/admin/provisioning/dashboards/reload
+ - name: REQ_METHOD
+ value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-dashboard-volume
mountPath: "/tmp/dashboards"
- name: grafana-sc-datasources
- image: "quay.io/kiwigrid/k8s-sidecar:1.19.2"
+ image: "quay.io/kiwigrid/k8s-sidecar:1.26.1"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
@@ -391,12 +354,26 @@
value: http://localhost:3000/api/admin/provisioning/datasources/reload
- name: REQ_METHOD
value: POST
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: sc-datasources-volume
mountPath: "/etc/grafana/provisioning/datasources"
- name: grafana
- image: "ghcr.io/k8s-at-home/grafana:9.1.7"
+ image: "docker.io/ghcr.io/k8s-at-home/grafana:10.4.1"
imagePullPolicy: IfNotPresent
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
volumeMounts:
- name: config
mountPath: "/etc/grafana/grafana.ini"
@@ -420,7 +397,17 @@
- name: grafana
containerPort: 3000
protocol: TCP
+ - name: gossip-tcp
+ containerPort: 9094
+ protocol: TCP
+ - name: gossip-udp
+ containerPort: 9094
+ protocol: UDP
env:
+ - name: POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
@@ -525,7 +512,7 @@
- grafana.${SECRET_DOMAIN}
secretName: ${SECRET_DOMAIN//./-}-tls
rules:
- - host: grafana.${SECRET_DOMAIN}
+ - host: "grafana.${SECRET_DOMAIN}"
http:
paths:
- path: /
@@ -549,7 +536,7 @@
spec:
endpoints:
- port: service
- interval: 1m
+ interval: 30s
scrapeTimeout: 30s
honorLabels: true
path: /metrics
@@ -563,6 +550,42 @@
matchNames:
- default
---
+# Source: grafana/templates/tests/test-serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+---
+# Source: grafana/templates/tests/test-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-test
+ namespace: default
+ annotations:
+ "helm.sh/hook": test-success
+ "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
+ labels:
+ app.kubernetes.io/name: grafana
+ app.kubernetes.io/instance: grafana
+ app.kubernetes.io/managed-by: Helm
+data:
+ run.sh: |-
+ @test "Test Health" {
+ url="http://grafana/api/health"
+
+ code=$(wget --server-response --spider --timeout 90 --tries 10 ${url} 2>&1 | awk '/^ HTTP/{print $2}')
+ [ "$code" == "200" ]
+ }
+---
# Source: grafana/templates/tests/test.yaml
apiVersion: v1
kind: Pod
@@ -582,7 +605,7 @@
worker: true
containers:
- name: grafana-test
- image: "bats/bats:v1.4.1"
+ image: "docker.io/bats/bats:v1.4.1"
imagePullPolicy: "IfNotPresent"
command: ["/opt/bats/bin/bats", "-t", "/tests/run.sh"]
volumeMounts: |
This PR contains the following updates:
6.40.4
->7.3.11
Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
grafana/helm-charts (grafana)
v7.3.11
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@k8s-monitoring-1.0.8...grafana-7.3.11
v7.3.10
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@tempo-distributed-1.9.9...grafana-7.3.10
v7.3.9
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-sampling-0.1.1...grafana-7.3.9
v7.3.8
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@rollout-operator-0.15.0...grafana-7.3.8
v7.3.7
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@k8s-monitoring-0.11.2...grafana-7.3.7
v7.3.6
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-7.3.5...grafana-7.3.6
v7.3.5
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-7.3.4...grafana-7.3.5
v7.3.4
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
serviceAccount.automountServiceAccountToken
and documentautomountServiceAccountToken
by @jkroepke in https://github.com/grafana/helm-charts/pull/2997Full Changelog: grafana/helm-charts@grafana-agent-0.36.0...grafana-7.3.4
v7.3.3
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@loki-distributed-0.78.3...grafana-7.3.3
v7.3.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-7.3.1...grafana-7.3.2
v7.3.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-agent-0.33.0...grafana-7.3.1
v7.3.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@promtail-6.15.5...grafana-7.3.0
v7.2.5
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@helm-loki-5.42.0...grafana-7.2.5
v7.2.4
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@loki-stack-2.10.1...grafana-7.2.4
v7.2.3
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-7.2.2...grafana-7.2.3
v7.2.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@tempo-distributed-1.8.0...grafana-7.2.2
v7.2.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-7.2.0...grafana-7.2.1
v7.2.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@helm-k6-operator-3.4.0...grafana-7.2.0
v7.1.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-7.0.22...grafana-7.1.0
v7.0.22
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@tempo-distributed-1.7.4...grafana-7.0.22
v7.0.21
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-7.0.20...grafana-7.0.21
v7.0.20
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-agent-0.30.0...grafana-7.0.20
v7.0.19
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-7.0.18...grafana-7.0.19
v7.0.18
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@k8s-monitoring-0.7.0...grafana-7.0.18
v7.0.17
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-7.0.16...grafana-7.0.17
v7.0.16
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-7.0.15...grafana-7.0.16
v7.0.15
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-7.0.14...grafana-7.0.15
v7.0.14
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@helm-k6-operator-3.3.0...grafana-7.0.14
v7.0.11
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-7.0.10...grafana-7.0.11
v7.0.10
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-7.0.9...grafana-7.0.10
v7.0.9
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@tempo-distributed-1.7.1...grafana-7.0.9
v7.0.8
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-7.0.6...grafana-7.0.8
v7.0.6
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-7.0.5...grafana-7.0.6
v7.0.5
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@rollout-operator-0.10.0...grafana-7.0.5
v7.0.4
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@helm-k6-operator-3.0.0...grafana-7.0.4
v7.0.3
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@k8s-monitoring-0.3.1...grafana-7.0.3
v7.0.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-7.0.1...grafana-7.0.2
v7.0.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-7.0.0...grafana-7.0.1
v7.0.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-6.61.2...grafana-7.0.0
v6.61.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@loki-distributed-0.76.1...grafana-6.61.2
v6.61.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-agent-operator-0.3.8...grafana-6.61.1
v6.61.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@oncall-1.3.43...grafana-6.61.0
v6.60.6
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-6.60.5...grafana-6.60.6
v6.60.5
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@helm-loki-5.29.0...grafana-6.60.5
v6.60.4
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
| quote
forsidecar.dashboards.labelValue
by @cwrau in https://github.com/grafana/helm-charts/pull/2696New Contributors
Full Changelog: grafana/helm-charts@grafana-6.60.3...grafana-6.60.4
v6.60.3
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@helm-loki-5.25.0...grafana-6.60.3
v6.60.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@lgtm-distributed-1.0.0...grafana-6.60.2
v6.60.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-6.60.0...grafana-6.60.1
v6.60.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@rollout-operator-0.9.1...grafana-6.60.0
v6.59.5
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@loki-distributed-0.74.5...grafana-6.59.5
v6.59.4
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@loki-distributed-0.73.0...grafana-6.59.4
v6.59.3
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-6.59.2...grafana-6.59.3
v6.59.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-agent-0.23.0...grafana-6.59.2
v6.59.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@loki-distributed-0.72.0...grafana-6.59.1
v6.59.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@k8s-monitoring-0.1.13...grafana-6.59.0
v6.58.10
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@helm-loki-5.15.0...grafana-6.58.10
v6.58.9
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@helm-loki-5.11.0...grafana-6.58.9
v6.58.8
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@promtail-6.14.2...grafana-6.58.8
v6.58.7
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@loki-stack-2.9.11...grafana-6.58.7
v6.58.6
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@loki-distributed-0.70.5...grafana-6.58.6
v6.58.5
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@loki-distributed-0.70.1...grafana-6.58.5
v6.58.4
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@oncall-1.3.12...grafana-6.58.4
v6.58.3
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-6.58.2...grafana-6.58.3
v6.58.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@grafana-6.58.1...grafana-6.58.2
v6.58.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
New Contributors
Full Changelog: grafana/helm-charts@grafana-6.58.0...grafana-6.58.1
v6.58.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@tempo-distributed-1.4.8...grafana-6.58.0
v6.57.4
Compare Source
The leading tool for querying and visualizing time series and metrics.
What's Changed
Full Changelog: grafana/helm-charts@mimir-distributed-4.5.0...grafana-6.57.4
v6.57.3
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.57.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.57.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.57.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.56.6
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.56.5
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.56.4
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.56.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.56.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.56.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.55.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.55.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.54.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.53.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.52.9
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.52.8
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.52.7
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.52.6
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.52.5
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.52.4
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.52.3
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.52.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.52.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.52.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.51.5
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.51.4
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.51.3
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.51.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.51.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.51.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.50.8
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.50.7
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.50.6
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.50.5
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.50.4
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.50.3
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.50.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.50.1
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.50.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.49.0
Compare Source
The leading tool for querying and visualizing time series and metrics.
v6.48.2
Compare Source
The leading tool for querying and visualizing time series and metrics.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate. View repository job log here.